package com.yueya.media.service;

import com.yueya.media.model.MediaDto;

import java.io.File;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 * @author yueya
 * @date 2017/11/15
 */
public interface MediaService {
    /**
     * 根据数据id查询关联的文件
     * @param mainId
     * @return
     */
    List<MediaDto> findMediaList(String mainId);

    /**
     * 根据id删除文件
     * @param id
     */
    void deleteById(String id);

    /**
     * 根据id获取文件
     * @param id
     * @return
     */
    MediaDto getMedia(String id);

    /**
     * 添加一个文件
     * @param f
     * @param mainId
     * @return
     */
    boolean addMeida(File f, String mainId);

    /**
     * 添加一个新的文件
     * @param fileName
     * @param inputStream
     * @return 返回文件的id
     */
    String addNewMedia(String fileName, InputStream inputStream);

    /**
     * 更新文件的
     * @param id
     * @param exts
     * @return
     */
    boolean updateMeta(String id, Map<String, Object> exts);

    /**
     * 关联业务数据和相应多媒体文件的id
     * @param metaId 属性id
     * @param mediaIds 多个文件的id.用","号隔开
     * @return
     */
    int saveMedias(String metaId, String mediaIds);

    /**
     * 根据数据id删除所有关联的文件
     * @param mainId
     * @return
     */
    boolean deleteByMainId(String mainId);

    InputStream getInputStream(String id);
}
